package org.su.generalmvc.util;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import java.io.IOException;

//TODO 待优化。。。。
public class UrlBASE64Encoder {

	public static String encoder(String str) {
		
		BASE64Encoder base64 = new BASE64Encoder();
		String result = base64.encode(str.getBytes());
		//base64码 作为参数通过表单的get（或ajax）方式提交给后台服务的时候会被http协议编码时变为空格，这样的数据提交到后台就无法转换会为原来的数据
		result = result.replaceAll("\\+", "!");
		//str长度大于57的时候就会出现换行回车\r \n
		result = result.replaceAll("\n", "-");
		result = result.replaceAll("\r", "@");
		return result;
	}
	
	public static byte[] decoder(String str) throws IOException {
		String temp =str.replaceAll("!", "+").replaceAll("-", "\n").replaceAll("@", "\r");
		BASE64Decoder baDecoder = new BASE64Decoder();
		return baDecoder.decodeBuffer(temp);
	}
	
}
